package com.code.translate.utils;

import com.jayway.jsonpath.JsonPath;
import net.minidev.json.JSONArray;

import java.util.List;

/**
 * @author ggh
 * @date 2022/7/8
 */
public class JsonpathUtils {

    private JsonpathUtils() {
    }

    /**
     * jsonpath解析
     *
     * @param json         待解析字符串
     * @param jsonpathExpr jsonpath路径
     * @return
     */
    public static String read(String json, String jsonpathExpr) {
        Object obj = JsonPath.read(json, jsonpathExpr);
        if (obj instanceof String) {
            return (String) obj;
        } else if (obj instanceof JSONArray) {
            List<Object> list = (List<Object>) obj;

            return StringUtils.joinObject(list, "\n");
        } else {
            return String.valueOf(obj);
        }
    }

    /**
     * jsonpath解析
     *
     * @param json         待解析字符串
     * @param jsonpathExpr jsonpath路径
     * @return
     */
    public static List<Object> readList(String json, String jsonpathExpr) {
        Object obj = JsonPath.read(json, jsonpathExpr);
        return (List<Object>) obj;
    }
}
